/* 
 * Copyright 2014-2021 UME Framework, GNU General Public License 
 */
package com.u2framework.lib.tool.gen.entity.bean;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * EntityDescBean
 *
 * @author SultansOfSwing & MaYue
 */
public class EntityDescBean extends BaseEntityBean {
    /**
     * Base package
     */
    private String basePackage;
    /**
     * Entity class identify name (ID)
     */
    private String classId;
    /**
     * Entity class identify name (ID)
     */
    private String classOriId;
    /**
     * Entity class identify name (ID low case)
     */
    private String classOriIdInLowCase;
    /**
     * Entity class identify name (ID upper case)
     */
    private String classOriIdInUpperCase;
    /**
     * Entity class name
     */
    private String className;
    /**
     * Entity class comment
     */
    private String classComment;

    /**
     * Entity Crud interface class package
     */
    private String tableCrudServiceInterfacePackage;
    /**
     * Entity Crud implementation class package
     */
    private String tableCrudServicePackage;
    /**
     * Entity Crud Api class package
     */
    private String tableCrudApiPackage;
    /**
     * Entity class package
     */
    private String tableEntityPackage;
    /**
     * Mapper class package
     */
    private String tableMapperPackage;
    /**
     * Entity Crud implementation class ID
     */
    private String tableCrudServiceClass;
    /**
     * Entity Crud interface class ID
     */
    private String tableCrudServiceInterface;
    /**
     * Entity Crud Api class ID
     */
    private String tableCrudApiClass;
    /**
     * Entity Mapper class ID
     */
    private String tableMapperClass;
    /**
     * Entity class ID
     */
    private String tableEntityClass;
    /**
     * Sql Map XML file name
     */
    private String sqlMapXmlFile;
    /**
     * all Dto fields
     */
    private List<FieldDescBean> fieldList = new ArrayList<>();
    /**
     * auto increment columns
     */
    private List<FieldDescBean> autoIncrementFieldList = new ArrayList<>();
    /**
     * primary key fields
     */
    private List<FieldDescBean> primaryKeyFieldList = new ArrayList<>();
    /**
     * non-primary key fields
     */
    private List<FieldDescBean> nonPrimaryKeyFieldList = new ArrayList<>();
    /**
     * optimistic check fields
     */
    private List<FieldDescBean> optimisticCheckFieldlList = new ArrayList<>();
    /**
     * optimistic check fields
     */
    private List<FieldDescBean> logicalDeleteFieldlList = new ArrayList<>();
    /**
     * create ID check fields
     */
    private List<FieldDescBean> creatorIdFieldlList = new ArrayList<>();
    /**
     * updater ID check fields
     */
    private List<FieldDescBean> updaterIdFieldlList = new ArrayList<>();
    /**
     * create time check fields
     */
    private List<FieldDescBean> createTimeFieldlList = new ArrayList<>();
    /**
     * update time check fields
     */
    private List<FieldDescBean> updateTimeFieldlList = new ArrayList<>();
    /**
     * update Version check fields
     */
    private List<FieldDescBean> updateVersionFieldlList = new ArrayList<>();
    /**
     * collection for Entity annotation content build
     */
    private List<String> classAnnotationList = new ArrayList<>();
    /**
     * collection for Entity import class build
     */
    private Set<String> classImportList = new HashSet<>();;

    /**
     * @return the classPackage
     */
    public String getBasePackage() {
        return basePackage;
    }

    /**
     * @param classPackage the classPackage to set
     */
    public void setBasePackage(String basePackage) {
        this.basePackage = basePackage;
    }

    /**
     * @return the classId
     */
    public String getClassId() {
        return classId;
    }

    /**
     * @param classId the classId to set
     */
    public void setClassId(String classId) {
        this.classId = classId;
    }

    /**
     * @return the className
     */
    public String getClassName() {
        return className;
    }

    /**
     * @param className the className to set
     */
    public void setClassName(String className) {
        this.className = className;
    }

    /**
     * @return the classComment
     */
    public String getClassComment() {
        return classComment;
    }

    /**
     * @param classComment the classComment to set
     */
    public void setClassComment(String classComment) {
        this.classComment = classComment;
    }

    /**
     * @return the tableCrudServiceInterfacePackage
     */
    public String getTableCrudServiceInterfacePackage() {
        return tableCrudServiceInterfacePackage;
    }

    /**
     * @param tableCrudServiceInterfacePackage the tableCrudServiceInterfacePackage to set
     */
    public void setTableCrudServiceInterfacePackage(String tableCrudServiceInterfacePackage) {
        this.tableCrudServiceInterfacePackage = tableCrudServiceInterfacePackage;
    }

    /**
     * @return the tableCrudServicePackage
     */
    public String getTableCrudServicePackage() {
        return tableCrudServicePackage;
    }

    /**
     * @param tableCrudServicePackage the tableCrudServicePackage to set
     */
    public void setTableCrudServicePackage(String tableCrudServicePackage) {
        this.tableCrudServicePackage = tableCrudServicePackage;
    }

    /**
     * @return the tableCrudServiceClass
     */
    public String getTableCrudServiceClass() {
        return tableCrudServiceClass;
    }

    /**
     * @param tableCrudServiceClass the tableCrudServiceClass to set
     */
    public void setTableCrudServiceClass(String tableCrudServiceClass) {
        this.tableCrudServiceClass = tableCrudServiceClass;
    }

    /**
     * @return the tableCrudServiceInterface
     */
    public String getTableCrudServiceInterface() {
        return tableCrudServiceInterface;
    }

    /**
     * @param tableCrudServiceInterface the tableCrudServiceInterface to set
     */
    public void setTableCrudServiceInterface(String tableCrudServiceInterface) {
        this.tableCrudServiceInterface = tableCrudServiceInterface;
    }

    /**
     * @return the primaryKeyFieldList
     */
    public List<FieldDescBean> getPrimaryKeyFieldList() {
        return primaryKeyFieldList;
    }

    /**
     * @param primaryKeyFieldList the primaryKeyFieldList to set
     */
    public void setPrimaryKeyFieldList(List<FieldDescBean> primaryKeyFieldList) {
        this.primaryKeyFieldList = primaryKeyFieldList;
    }

    /**
     * @return the nonPrimaryKeyFieldList
     */
    public List<FieldDescBean> getNonPrimaryKeyFieldList() {
        return nonPrimaryKeyFieldList;
    }

    /**
     * @param nonPrimaryKeyFieldList the nonPrimaryKeyFieldList to set
     */
    public void setNonPrimaryKeyFieldList(List<FieldDescBean> nonPrimaryKeyFieldList) {
        this.nonPrimaryKeyFieldList = nonPrimaryKeyFieldList;
    }

    /**
     * @return the classAnnotationList
     */
    public List<String> getClassAnnotationList() {
        return classAnnotationList;
    }

    /**
     * @param classAnnotationList the classAnnotationList to set
     */
    public void setClassAnnotationList(List<String> classAnnotationList) {
        this.classAnnotationList = classAnnotationList;
    }

    /**
     * @return the classImportList
     */
    public Set<String> getClassImportList() {
        return classImportList;
    }

    /**
     * @param classImportList the classImportList to set
     */
    public void setClassImportList(Set<String> classImportList) {
        this.classImportList = classImportList;
    }

    /**
     * @return the classOriId
     */
    public String getClassOriId() {
        return classOriId;
    }

    /**
     * @param classOriId the classOriId to set
     */
    public void setClassOriId(String classOriId) {
        this.classOriId = classOriId;
    }

    /**
     * @return the classOriIdInLowCase
     */
    public String getClassOriIdInLowCase() {
        return classOriIdInLowCase;
    }

    /**
     * @param classOriIdInLowCase the classOriIdInLowCase to set
     */
    public void setClassOriIdInLowCase(String classOriIdInLowCase) {
        this.classOriIdInLowCase = classOriIdInLowCase;
    }

    /**
     * @return the classOriIdInUpperCase
     */
    public String getClassOriIdInUpperCase() {
        return classOriIdInUpperCase;
    }

    /**
     * @param classOriIdInUpperCase the classOriIdInUpperCase to set
     */
    public void setClassOriIdInUpperCase(String classOriIdInUpperCase) {
        this.classOriIdInUpperCase = classOriIdInUpperCase;
    }

    /**
     * @return the tableCrudApiPackage
     */
    public String getTableCrudApiPackage() {
        return tableCrudApiPackage;
    }

    /**
     * @param tableCrudApiPackage the tableCrudApiPackage to set
     */
    public void setTableCrudApiPackage(String tableCrudApiPackage) {
        this.tableCrudApiPackage = tableCrudApiPackage;
    }

    /**
     * @return the tableCrudApiClass
     */
    public String getTableCrudApiClass() {
        return tableCrudApiClass;
    }

    /**
     * @param tableCrudApiClass the tableCrudApiClass to set
     */
    public void setTableCrudApiClass(String tableCrudServiceApi) {
        this.tableCrudApiClass = tableCrudServiceApi;
    }

    /**
     * @return the tableMapperClass
     */
    public String getTableMapperClass() {
        return tableMapperClass;
    }

    /**
     * @param tableMapperClass the tableMapperClass to set
     */
    public void setTableMapperClass(String tableMapperClass) {
        this.tableMapperClass = tableMapperClass;
    }

    /**
     * @return the tableEntityPackage
     */
    public String getTableEntityPackage() {
        return tableEntityPackage;
    }

    /**
     * @param tableEntityPackage the tableEntityPackage to set
     */
    public void setTableEntityPackage(String tableEntityPackage) {
        this.tableEntityPackage = tableEntityPackage;
    }

    /**
     * @return the tableMapperPackage
     */
    public String getTableMapperPackage() {
        return tableMapperPackage;
    }

    /**
     * @param tableMapperPackage the tableMapperPackage to set
     */
    public void setTableMapperPackage(String tableMapperPackage) {
        this.tableMapperPackage = tableMapperPackage;
    }

    /**
     * @return the tableEntityClass
     */
    public String getTableEntityClass() {
        return tableEntityClass;
    }

    /**
     * @param tableEntityClass the tableEntityClass to set
     */
    public void setTableEntityClass(String tableEntityClass) {
        this.tableEntityClass = tableEntityClass;
    }

    /**
     * @return the sqlMapXmlFile
     */
    public String getSqlMapXmlFile() {
        return sqlMapXmlFile;
    }

    /**
     * @param sqlMapXmlFile the sqlMapXmlFile to set
     */
    public void setSqlMapXmlFile(String sqlMapXmlFile) {
        this.sqlMapXmlFile = sqlMapXmlFile;
    }

    /**
     * @return the optimisticCheckFieldlList
     */
    public List<FieldDescBean> getOptimisticCheckFieldlList() {
        return optimisticCheckFieldlList;
    }

    /**
     * @param optimisticCheckFieldlList the optimisticCheckFieldlList to set
     */
    public void setOptimisticCheckFieldlList(List<FieldDescBean> optimisticCheckFieldlList) {
        this.optimisticCheckFieldlList = optimisticCheckFieldlList;
    }
    /**
     * @return the fieldList
     */
    public List<FieldDescBean> getFieldList() {
        return fieldList;
    }

    /**
     * @param fieldList the fieldList to set
     */
    public void setFieldList(List<FieldDescBean> fieldList) {
        this.fieldList = fieldList;
    }
    /**
     * @return the logicalDeleteFieldlList
     */
    public List<FieldDescBean> getLogicalDeleteFieldlList() {
        return logicalDeleteFieldlList;
    }

    /**
     * @param logicalDeleteFieldlList the logicalDeleteFieldlList to set
     */
    public void setLogicalDeleteFieldlList(List<FieldDescBean> logicalDeleteFieldlList) {
        this.logicalDeleteFieldlList = logicalDeleteFieldlList;
    }

    /**
     * @return the creatorIdFieldlList
     */
    public List<FieldDescBean> getCreatorIdFieldlList() {
        return creatorIdFieldlList;
    }

    /**
     * @param creatorIdFieldlList the creatorIdFieldlList to set
     */
    public void setCreatorIdFieldlList(List<FieldDescBean> creatorIdFieldlList) {
        this.creatorIdFieldlList = creatorIdFieldlList;
    }

    /**
     * @return the updaterIdFieldlList
     */
    public List<FieldDescBean> getUpdaterIdFieldlList() {
        return updaterIdFieldlList;
    }

    /**
     * @param updaterIdFieldlList the updaterIdFieldlList to set
     */
    public void setUpdaterIdFieldlList(List<FieldDescBean> updaterIdFieldlList) {
        this.updaterIdFieldlList = updaterIdFieldlList;
    }

    /**
     * @return the createTimeFieldlList
     */
    public List<FieldDescBean> getCreateTimeFieldlList() {
        return createTimeFieldlList;
    }

    /**
     * @param createTimeFieldlList the createTimeFieldlList to set
     */
    public void setCreateTimeFieldlList(List<FieldDescBean> createTimeFieldlList) {
        this.createTimeFieldlList = createTimeFieldlList;
    }

    /**
     * @return the updateTimeFieldlList
     */
    public List<FieldDescBean> getUpdateTimeFieldlList() {
        return updateTimeFieldlList;
    }

    /**
     * @param updateTimeFieldlList the updateTimeFieldlList to set
     */
    public void setUpdateTimeFieldlList(List<FieldDescBean> updateTimeFieldlList) {
        this.updateTimeFieldlList = updateTimeFieldlList;
    }

    /**
     * @return the updateVersionFieldlList
     */
    public List<FieldDescBean> getUpdateVersionFieldlList() {
        return updateVersionFieldlList;
    }

    /**
     * @param updateVersionFieldlList the updateVersionFieldlList to set
     */
    public void setUpdateVersionFieldlList(List<FieldDescBean> updateVersionFieldlList) {
        this.updateVersionFieldlList = updateVersionFieldlList;
    }

    /**
     * @return the autoIncrementFieldList
     */
    public List<FieldDescBean> getAutoIncrementFieldList() {
        return autoIncrementFieldList;
    }

    /**
     * @param autoIncrementFieldList the autoIncrementFieldList to set
     */
    public void setAutoIncrementFieldList(List<FieldDescBean> autoIncrementFieldList) {
        this.autoIncrementFieldList = autoIncrementFieldList;
    }
    
}
